home *** CD-ROM | disk | FTP | other *** search
/ GameStar 2006 February / Gamestar_81_2006-02_dvd.iso / Red Shark / Common / Bullets.script < prev    next >
Text File  |  2001-11-27  |  9KB  |  309 lines

  1. //-------------------------------------------------------------------
  2. //
  3. //  This code is copyright 2001 by G5 Software.
  4. //  Any unauthorized usage, either in part or in whole of this code
  5. //  is strictly prohibited. Violators WILL be prosecuted to the
  6. //  maximum extent allowed by law.
  7. //
  8. //-------------------------------------------------------------------
  9.  
  10. // Base bullets class (some default values)
  11. class CBaseBulletClass extends CWorldPhysics
  12. {
  13.   bool   AutoTargeting  = false;
  14.   float  ChangeDirSpeed = 0.0;
  15.   bool   ExplodeOnPast  = false;
  16.   float  LifeTime       = 0.0;
  17.   string InverseTrackId = "";
  18.   string ExplosionId    = "";
  19.   string Renderable     = "";
  20. }
  21.  
  22.  
  23.  
  24.  
  25. // German bullets
  26. class CGermanTankGunBullet extends CBaseBulletClass
  27. {
  28.   string Renderable  = "CGreenBulletTraceEffect";
  29.   string ExplosionId = "EXPLID_GermanTankBulletExplosion";
  30. }
  31.  
  32. class CGermanAntiairGunBullet extends CBaseBulletClass
  33. {
  34.   string Renderable  = "CRedBulletTraceEffect";
  35.   string ExplosionId = "EXPLID_GermanAntiairBulletExplosion";
  36. }
  37.  
  38. class CGermanAJeepGunBullet extends CBaseBulletClass
  39. {
  40.   string Renderable  = "CRedBulletTraceEffect";
  41.   string ExplosionId = "EXPLID_GermanAJeepBulletExplosion";
  42. }
  43.  
  44. class CGermanGunTowerBullet extends CBaseBulletClass
  45. {
  46.   string Renderable  = "CBlueBulletTraceEffect";
  47.   string ExplosionId = "EXPLID_GermanGunTowerBulletExplosion";
  48. }
  49.  
  50. class CGermanParatrooperBullet extends CBaseBulletClass
  51. {
  52.   string Renderable  = "CGreenBulletTraceEffect";
  53.   string ExplosionId = "EXPLID_GermanParatrooperBulletExplosion";
  54. }
  55.  
  56. class CGermenArmedSHouseBullet extends CBaseBulletClass
  57. {
  58.   string Renderable  = "CRedBulletTraceEffect";
  59.   string ExplosionId = "EXPLID_GermenArmedSHouseBulletExplosion";
  60. }
  61.  
  62. class CGermenArmedDHouseBullet extends CBaseBulletClass
  63. {
  64.   string Renderable  = "CRedBulletTraceEffect";
  65.   string ExplosionId = "EXPLID_GermenArmedDHouseBulletExplosion";
  66. }
  67.  
  68. class CGermanArmedSandBagsBullet extends CBaseBulletClass
  69. {
  70.   string Renderable  = "CMagentaBulletTraceEffect";
  71.   string ExplosionId = "EXPLID_GermanArmedSandBagsBulletExplosion";
  72. }
  73.  
  74. class CGermanPanzerFaustBullet extends CBaseBulletClass
  75. {
  76.   bool   ExplodeOnPast  = true;
  77.  
  78.   string Renderable     = "CHelicopterMissileMesh";
  79.   string ExplosionId    = "EXPLID_GermanPanzerFaustExplosion";
  80.   string InverseTrackId = "EFFECTID_PanzerFaustInverseTrackEffect";
  81. }
  82.  
  83. class CGermanFlakGunBullet extends CBaseBulletClass
  84. {
  85.   bool   ExplodeOnPast  = true;
  86.   string Renderable  = "CMagentaBulletTraceEffect";
  87.   string ExplosionId = "EXPLID_GermanFlakBulletExplosion";
  88. }
  89.  
  90. class CGermanMobileFlakGunBullet extends CBaseBulletClass
  91. {
  92.   bool   ExplodeOnPast  = true;
  93.   string Renderable  = "CMagentaBulletTraceEffect";
  94.   string ExplosionId = "EXPLID_GermanMobileFlakBulletExplosion";
  95. }
  96.  
  97.  
  98.  
  99. // Soviet bullets
  100. class CSovietTankGunBullet extends CBaseBulletClass
  101. {
  102.   string Renderable  = "CYellowBulletTraceEffect";
  103.   string ExplosionId = "EXPLID_SovietTankBulletExplosion";
  104. }
  105.  
  106. class CSovietAJeepGunBullet extends CBaseBulletClass
  107. {
  108.   string Renderable  = "CYellowBulletTraceEffect";
  109.   string ExplosionId = "EXPLID_SovietAJeepBulletExplosion";
  110. }
  111.  
  112. class CSovietGunTowerBullet extends CBaseBulletClass
  113. {
  114.   string Renderable  = "CYellowBulletTraceEffect";
  115.   string ExplosionId = "EXPLID_SovietGunTowerBulletExplosion";
  116. }
  117.  
  118. class CSovietKatushaRocket extends CBaseBulletClass
  119. {
  120.   vector GravityVector  = g_Gravity;
  121.  
  122.   string Renderable     = "CHelicopterMissileMesh";
  123.   string ExplosionId    = "EXPLID_SovietKatushaRocketExplosion";
  124.   string InverseTrackId = "EFFECTID_RocketInverseTrack";
  125. }
  126.  
  127. class CSovietAirBomb extends CBaseBulletClass
  128. {
  129.   vector GravityVector  = g_Gravity;
  130.   string ExplosionId    = "EXPLID_SovietAirBombExplosion";
  131. }
  132.  
  133.  
  134.  
  135.  
  136. // Helicopter weapons
  137. class CHelicopterMissileMesh
  138. {
  139.   final static string CID = "PatternObject";
  140.  
  141.   string MeshFile = "Models/W_Rocket.mesh";
  142.   string SkinFile = "Models/W_Rocket.skin";
  143. }
  144.  
  145. class CHelicopterGunBullet extends CBaseBulletClass
  146. {
  147.   string Renderable     = "CYellowBulletTraceEffect";
  148.   string ExplosionId    = "EXPLID_HelicopterBulletExplosion";
  149. }
  150.  
  151. class CHelicopterMissile extends CBaseBulletClass
  152. {
  153.   bool   AutoTargeting  = true;
  154.   float  ChangeDirSpeed = 15;
  155.   string Renderable     = "CHelicopterMissileMesh";
  156.   string InverseTrackId = "EFFECTID_MissileInverseTrack";
  157.   string ExplosionId    = "EXPLID_HelicopterMissileExplosion";
  158. }
  159.  
  160. class CHelicopterRocket extends CBaseBulletClass
  161. {
  162.   string Renderable     = "CHelicopterMissileMesh";
  163.   string InverseTrackId = "EFFECTID_MissileInverseTrack";
  164.   string ExplosionId    = "EXPLID_HelicopterRocketExplosion";
  165. }
  166.  
  167.  
  168.  
  169.  
  170. // Bullets array
  171. class CFireBallRockMesh
  172. {
  173.   final static string CID = "PatternObject";
  174.  
  175.   string MeshFile = "Models/W_Rock.mesh";
  176.   string SkinFile = "Models/W_Rock.skin";
  177. }
  178.  
  179. class CExplosionFireBall extends CBaseBulletClass
  180. {
  181.   vector GravityVector  = g_Gravity;
  182.  
  183.   string Renderable     = "CFireBallRockMesh";
  184.   string InverseTrackId = "EFFECTID_FireBallInverseTrack";
  185.   string ExplosionId    = "EXPLID_FireBallExplosion";
  186. }
  187.  
  188. class CExplosionBlackFireBall extends CBaseBulletClass
  189. {
  190.   vector GravityVector  = g_Gravity;
  191.  
  192.   string Renderable     = "CFireBallRockMesh";
  193.   string InverseTrackId = "EFFECTID_BlackFireBallInverseTrack";
  194.   string ExplosionId    = "EXPLID_FireBallExplosion";
  195. }
  196.  
  197.  
  198.  
  199.  
  200. // Splashes
  201. class CBaseSplashItemClass extends CBaseBulletClass
  202. {
  203.   vector GravityVector  = g_Gravity;
  204.   float  LifeTime       = 2.0;
  205. }
  206.  
  207. class CExplosionFireSplash extends CBaseSplashItemClass
  208. {
  209.   float  LifeTime       = 2.0;
  210.   string InverseTrackId = "EFFECTID_BlackFireSplashInverseTrack";
  211. }
  212.  
  213. class CExplosionSmokeSplash extends CBaseSplashItemClass
  214. {
  215.   float  LifeTime       = 0.0;
  216.   string InverseTrackId = "EFFECTID_BlackFireBallInverseTrack";
  217. }
  218.  
  219. class CBulletHitSplashItem extends CBaseSplashItemClass
  220. {
  221.   float  LifeTime       = 2.5;
  222.   string Renderable     = "CSplashBulletTraceEffect";
  223. }
  224.  
  225.  
  226.  
  227.  
  228. // Bullets array
  229. class CBulletsArray
  230. {
  231.   void CBulletsArray()
  232.   {
  233.     CreatePattern("CGermanTankGunBullet", "BULLETID_GermanTankGunBullet");
  234.     CreatePattern("CGermanAntiairGunBullet", "BULLETID_GermanAntiairGunBullet");
  235.     CreatePattern("CGermanAJeepGunBullet", "BULLETID_GermanAJeepGunBullet");
  236.     CreatePattern("CGermanGunTowerBullet", "BULLETID_GermanGunTowerGunBullet");
  237.     CreatePattern("CGermanParatrooperBullet", "BULLETID_GermanParatrooperBullet");
  238.     CreatePattern("CGermenArmedSHouseBullet", "BULLETID_GermenArmedSHouseBullet");
  239.     CreatePattern("CGermenArmedDHouseBullet", "BULLETID_GermenArmedDHouseBullet");
  240.     CreatePattern("CGermanArmedSandBagsBullet", "BULLETID_GermanArmedSandBagsBullet");
  241.     CreatePattern("CGermanPanzerFaustBullet", "BULLETID_GermanPanzerFaustBullet");
  242.     CreatePattern("CGermanFlakGunBullet", "BULLETID_GermanFlakGunBullet");
  243.     CreatePattern("CGermanMobileFlakGunBullet", "BULLETID_GermanMobileFlakGunBullet");
  244.  
  245.     CreatePattern("CSovietTankGunBullet", "BULLETID_SovietTankGunBullet");
  246.     CreatePattern("CSovietAJeepGunBullet", "BULLETID_SovietAJeepGunBullet");
  247.     CreatePattern("CSovietGunTowerBullet", "BULLETID_SovietGunTowerGunBullet");
  248.     CreatePattern("CSovietKatushaRocket", "BULLETID_SovietKatushaRocket");
  249.     CreatePattern("CSovietAirBomb", "BULLETID_SovietAirBomb");
  250.  
  251.     CreatePattern("CHelicopterGunBullet", "BULLETID_HelicopterGunBullet");
  252.     CreatePattern("CHelicopterRocket", "BULLETID_HelicopterRocket");
  253.     CreatePattern("CHelicopterMissile", "BULLETID_HelicopterMissile");
  254.  
  255.     CreatePattern("CExplosionFireBall", "BULLETID_ExplosionFireBall");
  256.     CreatePattern("CExplosionBlackFireBall", "BULLETID_ExplosionBlackFireBall");
  257.  
  258.     CreatePattern("CExplosionFireSplash", "BULLETID_ExplosionFireSplash");
  259.     CreatePattern("CExplosionSmokeSplash", "BULLETID_ExplosionSmokeSplash");
  260.  
  261.     CreatePattern("CBulletHitSplashItem", "BULLETID_BulletHitSplashItem");
  262.   }
  263.  
  264.   void StartSovietAirBombing(
  265.       int    _BombsQty,
  266.       float  _Duration,
  267.       vector _Position,
  268.       float  _Radius
  269.     )
  270.   {
  271.     for (int Bomb = 0; Bomb < _BombsQty; Bomb = Bomb + 1)
  272.     {
  273.       final float Alpha  = rand(Math_PI);
  274.       final float Radius = rand(0.0, _Radius);
  275.  
  276.       matrix BulletPosition = matrix(
  277.           1.0, 0.0, 0.0, Core_GetVectorX(_Position) + Radius * sin(Alpha),
  278.           0.0, 1.0, 0.0, Core_GetVectorY(_Position) + Radius * cos(Alpha),
  279.           0.0, 0.0, 1.0, Core_GetVectorZ(_Position),
  280.           0.0, 0.0, 0.0, 1.0
  281.         );
  282.  
  283.       if ((rand_int(4) == 0) &&
  284.           (Bomb < (_BombsQty * 2 / 3)))
  285.       {
  286.         Core_ScheduleTask(
  287.             "Sounds",
  288.             OT_CallFunction,
  289.             _Duration * (float(Bomb) / float(_BombsQty)),
  290.             "CreateSound",
  291.             "SOUNDID_AirBombPitchSound",
  292.             BulletPosition
  293.           );
  294.       }
  295.  
  296.       Core_ScheduleTask(
  297.           "Bullets",
  298.           OT_CallFunction,
  299.           _Duration * (float(Bomb) / float(_BombsQty)),
  300.           "CreateBullet",
  301.           "BULLETID_SovietAirBomb",
  302.           BulletPosition,
  303.           vector(0.0, 0.0, 0.0)
  304.         );
  305.     }
  306.   }
  307. }
  308.  
  309.